//配置文件 axios
import axios from "axios";
//引入elementui的弹框
import { MessageBox } from "element-ui";
//y引入storage方法
import storage from "./storage";
let http = axios.create({//create 里面的对象会变成http上面的原型对象
    baseURL:'/api',
    timeout:5000,//超时设置
    withCredentials:true,//携带本地凭证 比如cookie

})


//全局的请求拦截器 对接口的请求批量进行统一处理
http.interceptors.request.use(config=>{
    //先将获取本地的token,然后携带给后端
    let token = storage.get('qf-token')
    console.log(token)
    config.headers['authorization'] = token
    //config就是所有的请求配置
    return config //放行 不return 那么不能将请求真正的发送出去
})

//全局的响应拦截 统一对错误进行处理
http.interceptors.response.use(config=>{
    // console.log(config)
    let {state,msg} = config.data
    if(!state){ 
        //后台响应了错误的结果
        MessageBox({
            message:msg,
            title:'错误提示',
            type:'error'
        })
    }
    return config  //如果不return axios请求就拿不到响应结果
})

export default http